package com.ruoyi.system.mapper;

import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.ruoyi.system.entity.ContractPaymentSchedule;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * 合同付款周期Mapper接口
 */
@Mapper
public interface ContractPaymentScheduleMapper extends BaseMapper<ContractPaymentSchedule> {

    /**
     * 根据合同ID查询付款周期列表
     * @param contractId 合同ID
     * @return 付款周期列表
     */
    List<ContractPaymentSchedule> selectByContractId(@Param("contractId") Long contractId);

    /**
     * 根据合同ID删除付款周期（逻辑删除）
     * @param contractId 合同ID
     * @return 删除的记录数
     */
    int deleteByContractId(@Param("contractId") Long contractId);

    /**
     * 统计合同的总付款金额
     * @param contractId 合同ID
     * @return 总付款金额
     */
    java.math.BigDecimal sumPaymentAmountByContractId(@Param("contractId") Long contractId);

    /**
     * 统计合同的总已付款金额
     * @param contractId 合同ID
     * @return 总已付款金额
     */
    java.math.BigDecimal sumActualPaymentAmountByContractId(@Param("contractId") Long contractId);
}
